 
package com.hs.core.dao;

import java.sql.Time;
import java.util.*;

//import org.hibernate.Criteria;
//import org.hibernate.Query;
//import org.hibernate.Session;
//import org.hibernate.criterion.Example;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**
 * 创建日期:2006-6-10
 * Title:文件所属模块（前期管理/计划经营/设备管理/运行管理/综合业务/系统管理）
 * Description：对本文件的详细描述，原则上不能少于50字
 * @author shaokun305
 * @mender：（文件的修改者，文件创建者之外的人）
 * @version 1.0
 * Remark：认为有必要的其他信息
 */

public class BaseDao {//extends HibernateDaoSupport implements IDao {

//	/**
//	 * 
//	 * 功能:保存一个实例化对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param baseBean
//	 */
//	public void saveObject(BaseBean baseBean) {
//		getHibernateTemplate().saveOrUpdate(baseBean);
//
//	}
//
//	/**
//	 * 
//	 * 功能:更新一个实例化对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param baseBean
//	 */
//	public void update(BaseBean baseBean) {
//		getHibernateTemplate().update(baseBean);
//
//	}
//	
//	
//	/**
//	 * 
//	 * 功能:更新一个实例化对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param baseBean
//	 */
//	public void save(BaseBean baseBean) {
//		getHibernateTemplate().save(baseBean);
//
//	}
//
//	/**
//	 * 
//	 * 功能:删除一个映射对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param baseBean
//	 */
//	public void deleteObject(BaseBean baseBean) {
//		getHibernateTemplate().delete(baseBean);
//	}
//
//	/**
//	 * 
//	 * 功能:删除一组映射对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param list
//	 */
//	public void deleteList(Collection list) {
//		getHibernateTemplate().deleteAll(list);
//
//	}
//	/**
//	 * 
//	 * 功能:保存一组映射对象
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param list
//	 */
//	public void saveOrUpdateAll(Collection list) {
//		getHibernateTemplate().saveOrUpdateAll(list);
//
//	}
//
//	/**
//	 * 
//	 * 功能:根据类的对象class和id,返回id对应的对象实例
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param entityClass   如:BugRecord.class
//	 * @param id 主键
//	 * @return
//	 */
//	public Object findByID(Class entityClass, Long id) {
//		return getHibernateTemplate().get(entityClass, id);
//	}
//
//	
//	/**
//	 * 
//	 * 功能:根据类的对象class和id,返回id对应的对象实例
//	 * 作者: shaokun305
//	 * 创建日期:2006-6-13
//	 * @param entityClass   如:BugRecord.class
//	 * @param id 主键
//	 * @return
//	 */
//	public Object findByID(Class entityClass, String id) {
//		return getHibernateTemplate().get(entityClass, id);
//	}
//    
//    /**
//     * 功能:执行删除或更新类Hql语句，无返回值<br>
//     * 作者: Zhangzhiya<br>
//     * 创建日期:Jul 5, 2006
//     * @param hql
//     */
//    protected void executeUpdate(final String hql){
//        this.getHibernateTemplate().execute(new HibernateCallback(){
//            public Object doInHibernate(Session sess){
//                Query query=sess.createQuery(hql);
//                query.executeUpdate();
//                releaseSession(sess);
//                return null;
//               }
//            }
//        );
//    }
//    
//    /**
//     * 功能:执行带参数的删除或更新类的Hql语句，无返回值<br>
//     * 参数的个数和顺序必须和hql语句中的问号相匹配<br>
//     * 作者: Zhangzhiya<br>
//     * 创建日期:Jul 5, 2006
//     * @param hql
//     * @param params
//     */
//    protected void executeUpdate(final String hql,final Object[] params){
//        this.getHibernateTemplate().execute(new HibernateCallback(){
//            public Object doInHibernate(Session sess){
//                Query query=sess.createQuery(hql);
//                if(null != params && params.length>0){
//                    for(int i=0;i<params.length;i++){
//                        Object obj=params[i];
//                        if(obj instanceof Long){
//                            query.setLong(i,((Long)obj).longValue());                            
//                        }else if(obj instanceof String){
//                            query.setString(i,obj.toString());
//                        }else if(obj instanceof Double){
//                            query.setDouble(i,((Double)obj).doubleValue());
//                        }else if(obj instanceof Float){
//                            query.setFloat(i,((Float)obj).floatValue());
//                        }else if(obj instanceof Integer){
//                            query.setInteger(i,((Integer)obj).intValue());
//                        }else if(obj instanceof Date || obj instanceof Time){
//                            query.setDate(i,(Date)obj);
//                        }else if(obj instanceof Short){
//                            query.setShort(i,((Short)obj).shortValue());
//                        }else if(obj instanceof Boolean){
//                            query.setBoolean(i,((Boolean)obj).booleanValue());
//                        }
//                    }
//                }
//                query.executeUpdate();
//                releaseSession(sess);
//                return null;
//               }
//            }
//        );
//    }
//    
//    /*
//     *  （非 Javadoc）
//     * @see cn.com.sgcc.core.base.IDao#delAllResultByProperty(java.lang.Class, java.lang.String, java.util.List)
//     */
//    public void delAllResultByProperty(Class clas,String propertyName,List valueList){
//        if(null != clas){
//            if(null != propertyName && !"".equals(propertyName)){
//                if(null != valueList && valueList.size()>0){
//                    StringBuffer hql=new StringBuffer("delete "+clas.getName()+" where "+propertyName+" in(");
//                    for(int i=0; i<valueList.size();i++){
//                        hql.append(valueList.get(i));
//                        if(i!=valueList.size()-1){
//                            hql.append(" ,");
//                        }
//                    }
//                    hql.append(")");
//                    this.executeUpdate(hql.toString());
//                }
//            }
//        }
//    }
//    
//    /*
//     *  （非 Javadoc）
//     * @see cn.com.sgcc.core.base.IDao#delAllResultByProperty(java.lang.Class, java.lang.String, java.lang.Object)
//     */
//    public void delAllResultByProperty(Class clas,String propertyName,Object value){
//        if(null != clas){
//            if(null != propertyName && !"".equals(propertyName)){
//                if(null != value && !"".equals(value)){
//                    String hql="delete "+clas.getName()+" where "+propertyName+" = ?";
//                    this.executeUpdate(hql,new Object[]{value});
//                }
//            }
//        }
//        
//    }
//    
//    
//    /*
//     * （非 Javadoc）
//     * @see cn.com.sgcc.core.base.IDao#findByExampleUnique(java.lang.Class, java.lang.Object)
//     */
//    public Object findByExampleUnique(Class classObj,Object exampleObj){
//        Criteria criteria = this.getSession().createCriteria(classObj)
//        		.add(Example.create(exampleObj));
//        return criteria.uniqueResult();
//    }
//    
//    /*
//     * （非 Javadoc）
//     * @see cn.com.sgcc.core.base.IDao#findByExample(java.lang.Class, java.lang.Object)
//     */
//    public List findByExample(Class classObj,Object exampleObj){
//        Criteria criteria = this.getSession().createCriteria(classObj)
//        		.add(Example.create(exampleObj));
//        return criteria.list();
//    }
//    
//    /**
//	 * 功能:公用的查找list的方法
//	 * <br>作者: Zhangzhiya<br>
//	 * 创建日期:2007-9-12
//	 * @param hql
//	 * @param param
//	 * @return
//	 */
//	public List findList(String hql,Object param){
//		if(null == param)
//			return this.getHibernateTemplate().find(hql);
//		else
//			return this.getHibernateTemplate().find(hql,param);
//	}
//	
//	/**
//	 * 
//	 * 功能: 获得列表
//	 * 作者: WXY
//	 * 创建日期:2006-12-14
//	 * @param hql
//	 * @return
//	 */
//	public List findList(String hql){
//		return this.getHibernateTemplate().find(hql);
//	}

}
